
FULL SCREEN EDITOR
for S-C Macro Assembler

    With these excellent features:
    - Complete Screen Editor
    - Co-Resident with S-C Macro Assembler
    - Adjustable tab stops and margins
    - Automatic renumbering
    - 40 or 80 column "window" editing
    - Column number guide
    - Source code included
    - Drivers for VIDEX, STB and Apple IIe 0 column boards


Requires 64k Apple II with Language card and S-C Macro Assembler
    Laumer Research
    1832 School Road
    Carroliton, Texas 75006
    (214) 245-3927


---------------------------------------------------------------------

FULL SCREEN EDITOR


for S-C Macro Asseinbier


by Mike Laumer















Laumer Research
1832 School Rd.
Carroliton, TX 75006

(214) 245-3927






Copyright (C) 1983 by Laumer Research


---------------------------------------------------------------------


General Information about the Screen Editor.

This Full Screen Editor was designed to co-exist (piggyback fashion)
with the Language card version of the S-C Macro ler.  The editor
requires a minimal patch to the assemb1er to recognize a "/" in
column 1 as a signal to enter the editor.  The editor is self
contained, and once started, it requires no routines in the actual
assembler itself.  The editor will also work with most of the S-C
Macro cross assemblers (except for 68000 version).

The Screen editor is created via a SYSGEN program to preset useful
parameters to individual needs.  There are several video driver
modules currently available.  By examining the source code of the
drivers in detail and by using the documentation from your video
board manufacturer you should be able to easily configure a video
driver for any 80 column board not currently supported.  The screen
editor uses all 80 columns and all 24 lines of a display.  Your board
must be able to write a column 80 character without the display
scrolling up when writing the last line.

If you have performed this conversion to your particular 80 column
board adequately and you are the first to send it to Laumer Research,
Laumer Research will refund you 20 dollars on the purchase of the
Screen Editor (If you give Laumer Research all rights for your driver
module, source and object code.)  In ~this mamner most video boards
should be supported within several months.  But remember that you
must be the first one to send it in for your particular board and it
must be a reasonable implementation before Laumer Research will send
you a refund.

Note that the video driver is only used by the screen editor and will
not resolve the problems in the assembler which prevent you from
using your video board with it.  For this you may look at the two
patch files for the S-C Macro Assembler provided on the disk for the
VIDEX and STB8O 80 column boards. These particular patches are to be
incorporated into future releases of the S-C Macro Assembler.

When the 80 column board versions of the screen editor begin
execution they assume that your 80 column board has already been
turned on and is in use.  If you have not done this then type a PR#3
to enable your 80 column video board before using the "/" command to
enter the screen editor.



-1-

---------------------------------------------------------------------

The editor commands are divided into two groups, the Scroll mode
commands and the Edit node commands.  The two nodes are toggled with
the use of the Escape key.

The two nodes are denoted~ by different cursor types depending on the
particular video driver.  With the standard Apple driver a flashing
"+" indicates the scroll mode and a normal flashingq character
indicates the edit mode.

Because there are no lower case flashing characters in standard Apple
II video, the Apple II video driver will convert a lower case
character into the upper case value when the edit mode cursor is
positioned over a lower case character.  This affects only the
display and not the value in the edit line.  The editor assumes a
lower case adapter for the Apple II display in order to display lower
case ASCII characters.  If however, you do not use lower case or you
have one of the supported 80 column boards then this will not matter
to you.

The screen editor also uses additional memory beyond what the S-C
Macro Assembler does.  The memory from $0F00-$0FFF is used to save
the editor working buffer at $0200-$02FF.  In addition, some
variables are used at $0380-$03CF.  Entering the screen editor will
cause any assembler symbol table to disappear because the editor
requires that area for use as a scroll line stack.

The editor is what is known as a "window" editor.  This means that
the screen (either 40 or 80 columns) is a "window" on a much larger
work area.  This "window" can be shifted either vertically or
horizontally to display any column from one through 248 and any line
up to your memory limitation.  As the cursor moves past the edge of
the "window" it will cause the editor to automatically pull the
"window" so the new cursor position remains in view on the screen.
The "window" will stop automatically when the line or column limits
are encountered. The "window" will always track the cursor position.

In the documentation which follows you will note that all control
characters are denoted by a prefix of "^".  For example "^Q" means
control Q.





-2-

---------------------------------------------------------------------

Here is a list of the editor keyboard commands.  Note that at any
time you may leave the editor and return to the assembler with the AQ
command to use the COPY or FIND and REplace editing, returning to the
editor when you wish.


The following commands are Scroll Mode commands.

 1 - Scroll up.  Shows next screen full of source code.
 2 - Scroll down.  Shows previous screen full of source code.
 3 - Toggle line numbers on/off.  Line numbers are displayed on the
     left.  New lines will show blanks as a line number. Any line
     number of 0000 will show as blanks.
 4 - Toggle compose mode on/off.  Affects the carriage return key.
     Controls if a new line is inserted after typing the return key.
     With this function you can type new lines without writing over the
     lines below it.
 5 - Toggle form guide on/off.  A column position guide can be shown
     at the top and bottom of the screen.
 ! - Scroll up long.  Faster way to move through the program code to
     the position you want.
 " - Scroll down long.  Faster way to move through the program code to
    the position you want.
 / - Goto line.  Type N/2000N and the return key and the editor will
     search for line 2000 and page the display starting with that line.
 : - Horizontal Scroll left.  Moves the window left to lower numbered
     columns depending on the amount set by the SYSGEN.  Allows editor
     to handle lines longer than the screen width without dropping to
     the next line.
 - - Horizontal Scroll right.  Moves the window right to higher
     numbered columns depending on the amount set by the SYSGEN.  Allows
     editor to handle lines longer than the screen width without dropping
     to the next line.
 B - Move to beginning of file.
 E - Move to end of file.
 I - Move cursor up 1 line.
 J - Move cursor left 1 column.
 K - Move cursor right 1 column.
 M - Move cursor down 1 line.
^H - Move cursor left 1 column (left arrow).
^J - Move cursor down 1 line.
^K - move cursor up 1 line.
^L - Insert 1 new line.
^M - Goto next line at left margin (Return key).
^P - Insert comment line.
^Q - Quit from editor, return to assembler.
^U - Move cursor right 1 column (right arrow).
^W - Set left margin (Affects carriage return).  Useful for setting a
     left margin for adding comments to uncomented code or for entering
     in a column of data.
^Z - Delete current line.
ESC- Leave Scroll mode and enter Edit mode.

-3-

---------------------------------------------------------------------

The following Scroll mode commands can also be used in the Edit mode
without conflict.  They prevent using the ESC key too many tines to
change modes.

^H - Move left 1 column (left arrow key)
^J - Move down 1 line.
^K - Move up 1 line.
^L - Insert blank lime.
^M - Goto next line at left margin (Return key).
^P - Insert comment line.
^Q - Quit from edit, return to assembler.
^U - Move right 1 column (right arrow key).
^W - Set left margin (Affects carriage return).
^Z - Delete current line.



The following commands are Edit node commands.

^@ - Clears to end of line.
^A - Toggle alpha shift lock on/off.
^B - Move to beginning of line.
^C - Copy characters from previous line to next tab.
^D - Delete current character.
^F - Find next key typed.  You may type the key over again to find
     the next occurence without typing  F again.
^I - Insert before current character.
^O - Insert control character before current character. Control
     characters will usually be displayed in inverse video depending
     on the particular video driver and video q hardware being used.
^N - Move to end of line.
^R - Restore line.  Helps correct edit mistakes.
^S - Set/clear a tab stop.  Use  T to show where the tab positions
     are.  Up to 21 tab stops are availiable.
^T - Tab to next tab stop.  If past last tab stop then  T wraps to
     the first tab stop.
ESC- Leave Edit mode and enter Scroll mode.










-4-

---------------------------------------------------------------------

The following Edit mode commands can be invoked from the Scroll node
and will pop you into the Edit mode and perform the command.  After
the command is executed the Edit node will still be in effect.  This
ability prevents using the ESC key too many times to change modes.

^@ - Clear to end of line.
^A - Toggle alpha shift lock on/off.
^B - Move to begining of line.
^C - Copy characters from previous line to next tab.
^D - Delete current character.
^I - Insert before current character.
^F - Find next typed character.
^N - Move to end of line.
^O - Insert control character before current character.
^S - Set/clear tab stop.
^T - Tab to next tab stop.



If you use the shift key modification as required by many popular
word processors and the Shift key mod flag is set via the SYSGEN
program then these additional keyboard capabilities are provided by
the editor.

Shift -> will move down 1 line.
Shift <- will move up 1 line.
Shift I in Scroll mode will Scroll down 1 screen.
Shift M in Scroll mode will Scroll up 1 screen.

If alpha lock is unlocked lower case characters are entered for the
letter keys (A-Z).  When the Shift key is pressed and a letter key is
pressed an upper case letter will result.  Note that the characters
(^]@) will produce (NMP).

























-5-

---------------------------------------------------------------------

About the SYSGEN program.

The SYSGEN program can control the initial settings of many of the
editor parameters.  To use the SYSGEN program first get Applesoft up
and running.  Then type "RUN SYSGEN".

The program will load and execute and the first thing it does ~ is
load the "B.EDITOR" file into memory.  The program will the~ display
a choice of video drivers available.  Select by number the driver
desired.

The SYSGEN program then loads the selected video driver into memory.
The next menu displayed allows alteration of particular parameters in
the editor module.

 0 - Will accept all the current. parameters and write the "EDITOR"
     file to the diskette with the driver selected and all parameters
     included as specified.
 1 - Allows you to change the short scroll parameter (used by
     functions 1,2 in the Scroll mode of the editor).
 2 - Allows you to change the long scroll parameter (used by
     functions !," in the Scroll mode of the editor).
 3 - Allows you to change the Horizontal shift count from one through
     the screen width-l.  For 80 column boards I recomend leaving this 10
     or more because of the length of time it takes to display the whole
     screen.  I like to set mine to 1/2 the screen width.  For the Apple
     II video version this can be as low as one with little apparent delay
     beacuse of the speed of the screen display routine. ~
 4 - Allows you to change the character code used in the P comment
     line insert command.
 5 - Allows you to change the number of characters in the P comment
     line insert command.
 6 - Shift key Mod flag.  Set to 0 if you do not have it, or 1 if you
     do have it.
 7 - Allows you to enable/disable the auto renumber feature. Set to 1
     to enable, and 0 to disable.  I like to set this to 1, it makes life
     easier.
 8 - Allows you to specify the starting line number for the auto
     renumber function.  Line numbers greater than 9999 are allowed as
     future Assembler releases will allow up to 65535 as a valid
     line.number.
 9 - Allows you to specify the increment for line numbers for the
     auto renumber function.
10 - Allows you to change the right margin.  This value must not be
     less than the screen width-l and its maximum is 248.
11 - Allows you to specify the left margin.  This should be left to 1
     since the W command in the editor can change it during runtime of the
     editor.
12 - Allows the tab table entries to be changed.  By typing a tab
     number you can delete the tab if it is already in the table.  A new
     entry is inserted into the tab table by typing its value.  Type a 0
     tab value to return to the normal parameter menu level.




-6-

---------------------------------------------------------------------

Files provided on the diskette:

HELLO - Applesoft boot program.

APPLESOFT - Integer boot program.

SYSGEN - An Applesoft program which will allow you to configure the
editor for your system.

ED - An EXEC file to be EXECed from within the language card S-C
Macro Assembler to load the screen editor.

ASMED - An EXEC file which can load the S-C Macro Assembler and
Laumer Reasearch screen editor into your Language card. You should
move the file "S-C.ASM.MACRO.LC" from the assembler disk to this disk
to be able to use this EXEC file.

EDITOR - A binary file created by the SYSGEN program customized to
your particular editor configuration.


The following files are binary files used by the SYSGEN program for
creating a cusomized editor configuration.

B.EDITOR - Screen editor without a driver.
B.DRIVER.AP2STD - Standard Apple II video driver.
B.DRIVER.AP2VIDEX - Videx video driver.
B.DRIVER.AP2STB80 - STB80 video driver.


The following are S-C Macro Assembler 1.0 source code.

S.ACF - Assembly control file for the assembly.
S.PART ONE - Entry point, parameters and tables.
S.PART TWO - Scroll mode command loop.
S.PART THREE - Scroll mode functions.
S.EDIT.LINE - Edit mode functions.
S.SUBMIT - Submits am edited line into the source code.
S.DRIVER.AP2STD - Apple II standard video driver.
S.DRIVER.AP2VIDEX - Videx 80 column board video driver.
S.DRIVER.AP2STB80 - STB80 80 column board video driver.


S.STB80.PATCHES - Patch file for S-C Macro Assembler for the STB 80
column board patches.  Read comments in code on how to apply.

S.VIDEX.PATCHES - Patch file for S-C Macro Assembler for the VIDEX 80
column board patches.  Read comments in code on how to apply.







-7-

---------------------------------------------------------------------

About the 80 column board patch files.


These patches are based on material printed in the Apple Assembley
Line by S-C Software Corp.  They are similar but have several small
problems fixed and more features added.  Also you must be aware that
certain procedures in using the assembler ~ are different.

To leave the assembler with FP, INT or MNTR commands you should first
type PR#3 to unhook the assembler from DOS.  Then type the command
you wish to leave the assembler with.

To return to the Assembler from the MNTR command or from using a
printer do not use PR#3 to come back.  Although at first it appears
the Assembler is working, some of the assembler features will not
work.  Instead use the RESET key to leave the monitor or printer.
This will unhook a printer, restart the Assembler and hook the
Assembler back into the DOS I/O hooks.

If you have an Integer Basic motherboard and want to leave the
Language Card Assembler permanently, I would recomend a reboot to
leave the Assembler.  This is because the Assembler patches $3D1 to
fix a problem with the Assembler looking like Applesoft at $EOOO but
setting the DOS active Basic flag ($AAB6) to Integer to load and save
type I files.  Without that patch the DOS INT command would not exit
from the Assembler.  If you do not reboot then the RESET key will
take you back into the Macro assembler in the Language Card.

It is possable to set up an EXEC file to load the assembler, screen
editor and the 80 column board patches in one continuous operation.
Here is a sample EXEC file which can do this.

1000    REM EXEC FILE TO LOAD EVERYTHING.
1010    CALL-151                            enter monitor
1020    C081 C081                           read ROM, write RAM
1025    F800<F800.FFFFM                     make sure we have monitor
1030    BLOAD S-C.ASM.MACRO.LC              load assembler
1040    BLOAD SCM80                         load videx patches
1050    C08B C08B                           write other 4K bank
1060    BLOAD EDITOR,A$D000                 load editor file
1070    C083 C083                           read/write RAM
1080    D066:4C E0 F7                       editor asm patch
1090    F7E0:C9 22 F0 07 C9 2F F0 06        invoke editor patches
1100    F7E8:4C 6A D0 4C 73 D0 AD 88 C0
1110    F7F1:4C 00 D0 AD 80 C0 4C 03 D0
1120    300:A9 4C CD 00 E0 F0 12 8D 00 E0   make asm test routine
1130    30A:A9 00 8D 0l E0 A9 D0 8D 02 E0 A9 CB 8D Dl 03 60
1135    C081 C081                           read ROM, write RAM
1140    300G                                assembler patches
1150    C080                                protect ram
1160    4000G                               start scm80  patches







-8-

---------------------------------------------------------------------

Screen Editor patches to the S-C Macro Assembler 1.0

The editor is invoked from the S-C Macro Assembler by typing a "/"
character in column one followed by an optional line number.  i.e.
"/2000" will start the editor up and move to line 2000 for the first
display screen.

In order to recognize the "/" as a valid command character the
assembler must have a small patch in the code that processes a
command line.  That code in the Assembler looks like this:

    D066 - C9 22       .1  CMP #'"    special printer command
    D068 - F0 09           BEQ .3     yes
    DOGA - 20 7F D0        JSR NML    process numbered line
    DO6D - 4C 34 D0        JMP GNL    get next command line
    D070 - 20 94 DD    .2  JSR CHO    send character
    D073 - 20 35 D2    .3  JSR GNC    get next character
    D076 - 90 F8           BCC .2     not eol yet
    D078 - B0 BA           BCS GNL    ... always

The editor requires a jump patched over the first two
instructions to $F7E0 where the following code resides.

    F7E0 - C9 22           CMP #'"    printer command?
    F7E2 - F0 07           BEQ PRT    yes
    F7E4 - C9 2F           CMP *'/    editor command?
    F7E6 - F0 06           BEQ EDIT   yes
    F7E8 - 4C 6A D0        JMP $D06A  go process numbered lime
    F7EB - 4C 73 D0   PRT  JMP $D073  process printer command
    F7EE - AD 88 C0   EDIT LDA $C088  turn on other 4k bank
    F7Fl - 4C OO D0        JMP $D000  enter the screen editor
    F7F4 - AD 80 C0   RETN LDA $C080  turn off other 4k bank
    F7F7 - 4C 03 D0        JMP SOFT   restart assembler

Note that $F7F4 is the return point from the screen editor when the ^Q
command is typed to leave the screen editor.

Thoughout future S-C Macro Assembler upgrades you should be able to
maintain these patches yourself to the assembler with this
information.  Note that the patch at $D066 and the addresses at $F7E8
and $F7EB are the only parts affected by a change in the assembler
which might cause the addresses to be slightly off a few bytes.

Of course the assembler must not be too large for these patches to
reside at $F7E0.  The Assembler must also not use the alternate 4K
memory bank on the language card.  (The 68000 cross assembler does
use it).









-9-

---------------------------------------------------------------------

Full Screen Editor Addendum

S-C Macro Assembler 1.1

The new version of the S-C Macro Assembler is now availiable.  This
version has a standard 40 column, Apple lie, VIDEX, and STB 80 column
assembler all on the same diskette.

The patch addresses in the new Macro Assembler however are all
different.  The Macro Assember code shown on page 9 of the Screen
Editor manual is shifted up by 5 bytes.

The EXEC file on page 8 would have the following line changes to
accomodate the shift in patch addresses:

1080 D06B:4C E0 F7

1100 F7E8:4C 6F D0 4C 78 D0 AD 88 C0


Note the following addresses change:

D066 --> D06B
D06A --> D06F
D073 --> D078

These changes have already been applied to the current disk files "ED
1.1", and "ASMED 1.1".


New functions added to the Editor.

The keyboard for the Apple II Plus is not the same as that used on
other computers such as the Apple IIe and the Franklin Ace computers.
Some keys chosen for their convenient fingertip location on the Apple
II Plus are not so convenient on other keyboards.  Therefore the
following editor key functions have been defined as duplicates.

                    Franklin &
    Apple II Plus   Apple IIe   Function
    -------------   ---------   ---------------------
    Shift 2 (")         @       long scroll back
             :          '       horizontal scroll left
             -          .       horizontal scroll right

Note that the key functions ",." have a nice feature in that the
shift functions are "<>" on all the keyboards.  This jogs your
memory about their true function, left and right horizontal scroll.


New Files on disk:

ED 1.1 - An EXEC file to be EXECed from the 1.1 version of the S-C
Macro Assembler which is running in the language card.  This EXEC
file will load the Full Screen Editor into the unused 4K bank of
memory on the language card.

ASMED 1.1 - An EXEC file which can load the S-C Macro Assembler
version 1.1 and the Full Screen Editor into your language card and
start the assembler.  You should move the file "S-C.ASM.MACRO.D000"
from the Assembler diskette to this Editor diskette to be able to use
this EXEC file.  There is a BLOAD command in this EXEC file to load
the Assembler, the file names must be made to match.

B.DRIVER.AP2E - Apple lie 80 column video driver.  This is the object
file used by the SYSGEN program to build an Apple lie Full Screen
Editor version.

S.DRIVER.AP2E - Apple lie 80 column board video driver. SYSGEN - This
Applesoft program has been updated to allow the new Apple lie driver
to be one of the selections on the menu.


Note that the Apple IIe driver should only be used with the S-C Macro
Assembler version 1.1 for the Apple IIe.  The 40 column driver can
also be used with the Apple IIe but you must always enter the Editor
in 40 column display mode.  If you do not have a 80 column card for
your Apple IIe then the 40 column driver must be the driver that you
use.


---------------------------------------------------------------------

